# 返回FastDFS 文件的全路径
# 文档位置和名字是规定死的

from django.core.files.storage import Storage
from django.conf import settings


class MyStorage(Storage):
    """自定义文件存储类"""

    def __init__(self, fdfs_base_url=None):
        """文件存储类的初始化方法"""
        # if not fdfs_base_url:
        #     self.fdfs_base_url = settings.FDFS_BASE_URL
        # self.fdfs_base_url = fdfs_base_url
        # 上面三行写成一行
        self.fdfs_base_url= fdfs_base_url or settings.FDFS_BASE_URL

        pass

    def _open(self, name, mode='rb'):
        """
        打开文件时会被调用：文档要求必须写
        :param name:
        :param mode:
        :return:
        """
        pass

    def _save(self, name, content):
        """
        保存文件时会被调用：文档要求必须写
        :param name:
        :param content:
        :return:
        """
        # 保存文件时使用的，此时不需要，而文档告诉说明必须实现，所以pass
        pass

    def url(self, name):
        """
        返回name所指文件的绝对URL
        :param name: 要读取文件的引用:group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        :return: http://192.168.103.158:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        """
        # 重写url方法后，在html 模板文件中需要手动调用
        # 如 将 content.image 写成 content.image.url
        return self.fdfs_base_url + name
